/*
********************************************************************************
* Copyright (C) 2021, xiang.D <dx_65535@163.com>.
* All right reserved.
*
* File Name   : airplane.h
* Author      :
* Version     : V1.0
* Description :
* Journal     : 2021-1-20 version v1.0
* Brief       : Blog: https://blog.csdn.net/qq_38750572?spm=1001.2014.3001.5343
* Others      :
                Compile command: make
********************************************************************************
*/
#ifndef __AIRPLANE_H__
#define __AIRPLANE_H__

#include "airplane_base.h"

class CAirBusA319 : public CAirplaneBase
{
public:
    CAirBusA319();

    ~CAirBusA319();

    void SetMediator(CTowerMediatorBase *meditor);

    int Notify(void *msg);

    int Receive(void *msg);

private:
    int mIdForMediator;
    CTowerMediatorBase *pmMeditor;
};

class CBoeing737 : public CAirplaneBase
{
public:
    CBoeing737();

    ~CBoeing737();

    void SetMediator(CTowerMediatorBase *meditor);

    int Notify(void *msg);

    int Receive(void *msg);

private:
    int mIdForMediator;
    CTowerMediatorBase *pmMeditor;
};

class CComacC919 : public CAirplaneBase
{
public:
    CComacC919();

    ~CComacC919();

    void SetMediator(CTowerMediatorBase *meditor);

    int Notify(void *msg);

    int Receive(void *msg);

private:
    int mIdForMediator;
    CTowerMediatorBase *pmMeditor;
};

#endif